#!/bin/bash

# 股票分析系统部署脚本
# 用法: ./deploy.sh [--build-only]
# 自动部署: ./deploy.sh (默认)
# 仅构建: ./deploy.sh --build-only

set -e

# 自动加载部署配置
if [ -f ".env.deploy" ]; then
    echo "📋 加载部署配置..."
    source .env.deploy
fi

# 服务器配置 (从环境变量或使用默认值)
SERVER_HOST="${DEPLOY_HOST:-tczlld.com}"
SERVER_PORT="${DEPLOY_PORT:-22}"
SERVER_USER="${DEPLOY_USER:-root}"
DEPLOY_PATH="/mydata/nginx/html/ta"
BACKUP_PATH="/var/backups/ta-backup-$(date +%Y%m%d-%H%M%S)"

# 检查部署模式
AUTO_DEPLOY=true
if [[ "$1" == "--build-only" ]]; then
    AUTO_DEPLOY=false
    echo "📦 仅构建模式"
else
    echo "🚀 自动部署模式 (使用 --build-only 仅构建)"
fi

echo "🚀 开始构建股票分析系统..."

# 1. 清理旧构建文件
if [ -d "out" ]; then
    echo "🧹 清理旧构建文件..."
    rm -rf out
fi

if [ -f "trade-analysis-dist.tar.gz" ]; then
    echo "🧹 清理旧部署包..."
    rm -f trade-analysis-dist.tar.gz
fi

# 2. 安装依赖 (仅在 node_modules 不存在时)
if [ ! -d "node_modules" ]; then
    echo "📦 安装依赖..."
    pnpm install
else
    echo "📦 依赖已存在，跳过安装"
fi

# 3. 构建生产版本
echo "🔨 构建生产版本..."

# 临时备份 .env.local 以确保使用生产环境配置
if [ -f .env.local ]; then
    echo "📝 临时备份开发环境配置..."
    mv .env.local .env.local.bak
fi

# 构建生产版本
pnpm run build:prod

# 恢复 .env.local
if [ -f .env.local.bak ]; then
    echo "🔄 恢复开发环境配置..."
    mv .env.local.bak .env.local
fi

# 4. 创建部署包
echo "📦 创建部署包..."
cd out
# 使用不带扩展属性的tar格式，避免macOS兼容性问题
tar --no-xattrs -czf ../trade-analysis-dist.tar.gz . 2>/dev/null || tar -czf ../trade-analysis-dist.tar.gz .
cd ..

# 5. 显示构建信息
BUILD_SIZE=$(du -h trade-analysis-dist.tar.gz | cut -f1)
echo "✅ 构建完成！"
echo ""
echo "📂 部署文件: trade-analysis-dist.tar.gz (${BUILD_SIZE})"
echo "🌐 访问地址: https://tczlld.com/ta/"
echo ""

# 6. 自动部署到服务器
if [ "$AUTO_DEPLOY" = true ]; then
    echo "🚀 开始自动部署..."
    
    # 检查是否安装了 sshpass
    if ! command -v sshpass >/dev/null 2>&1; then
        echo "❌ sshpass 未安装，请安装后再试："
        echo "   macOS: brew install sshpass"
        echo "   Ubuntu/Debian: sudo apt-get install sshpass"
        echo "   或使用手动部署方式"
        exit 1
    fi
    
    # 服务器密码 (从环境变量读取或默认值)
    SERVER_PASSWORD="${DEPLOY_PASSWORD:-Acme@2023}"
    
    # 检查 SSH 连接
    echo "🔐 检查服务器连接..."
    if ! sshpass -p "${SERVER_PASSWORD}" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 -p "${SERVER_PORT}" "${SERVER_USER}@${SERVER_HOST}" 'echo "SSH连接成功"' 2>/dev/null; then
        echo "❌ SSH 连接失败，请确保："
        echo "   1. 服务器可访问"
        echo "   2. 用户名密码正确"
        echo "   3. 服务器允许密码登录"
        exit 1
    fi
    
    echo "📤 上传部署包到服务器..."
    sshpass -p "${SERVER_PASSWORD}" scp -o StrictHostKeyChecking=no -P "${SERVER_PORT}" trade-analysis-dist.tar.gz "${SERVER_USER}@${SERVER_HOST}:/tmp/"
    
    echo "🔄 在服务器上部署..."
    sshpass -p "${SERVER_PASSWORD}" ssh -o StrictHostKeyChecking=no -p "${SERVER_PORT}" "${SERVER_USER}@${SERVER_HOST}" << 'EOF'
        set -e
        
        # 创建备份
        if [ -d "/mydata/nginx/html/ta" ]; then
            echo "📋 创建当前版本备份..."
            sudo mkdir -p /var/backups
            sudo cp -r /mydata/nginx/html/ta "/var/backups/ta-backup-$(date +%Y%m%d-%H%M%S)"
        fi
        
        # 创建部署目录
        echo "📁 准备部署目录..."
        sudo mkdir -p /mydata/nginx/html/ta
        cd /mydata/nginx/html/ta
        
        # 清理旧文件
        sudo rm -rf *
        
        # 解压新版本
        echo "📦 部署新版本..."
        sudo tar -xzf /tmp/trade-analysis-dist.tar.gz
        
        # 设置基本权限
        echo "🔐 设置文件权限..."
        sudo chmod -R 644 *
        sudo find . -type d -exec chmod 755 {} \;
        
        # 清理临时文件
        rm -f /tmp/trade-analysis-dist.tar.gz
        
        echo "✅ 服务器部署完成！"
EOF
    
    echo ""
    echo "🎉 自动部署成功！"
    echo "🌐 访问地址: https://tczlld.com/ta/"
    echo "📊 主题切换功能已集成，支持深色/浅色主题"
    
else
    # 手动部署说明
    echo "📋 手动部署步骤:"
    echo "1. 上传部署包:"
    echo "   scp trade-analysis-dist.tar.gz ${SERVER_USER}@${SERVER_HOST}:/tmp/"
    echo ""
    echo "2. 登录服务器:"
    echo "   ssh ${SERVER_USER}@${SERVER_HOST}"
    echo ""
    echo "3. 部署到网站目录:"
    echo "   sudo mkdir -p ${DEPLOY_PATH}"
    echo "   cd ${DEPLOY_PATH}"
    echo "   sudo rm -rf *"
    echo "   sudo tar -xzf /tmp/trade-analysis-dist.tar.gz"
    echo "   sudo chmod -R 644 *"
    echo "   sudo find . -type d -exec chmod 755 {} \\;"
    echo ""
    echo "🚀 使用自动部署: ./deploy.sh"
    echo "   (需要安装 sshpass: brew install sshpass)"
fi

echo ""
echo "🔧 确保 nginx 配置包含 /ta/ 路径支持"
echo "📝 新功能: 主题切换功能已集成 (深色/浅色主题)"